package com.cg.dao;


import com.cg.entity.SalePlan;
import com.cg.entity.User;
import com.cg.vo.QuerySalePlanVo;
import com.cg.vo.SalePlanVo;

import java.util.List;

/**
 * (SalePlan)表数据库访问层
 *
 * @author chengong
 * @since 2023-12-24 10:27:48
 */
public interface SalePlanMapper {

    /**
     * 销售计划管理列表
     */
    List<SalePlanVo> list(String salePlanMonth);

    /**
     * 创建销售计划
     */
    Integer createSalePlan(SalePlan salePlan);

    /**
     * 查询销售计划详细信息
     */
    QuerySalePlanVo querySalePlan(Integer salePlanId);

    /**
     * 加载所有的待处理人列表
     */
    List<User> pendingList(String roleCode);


    /**
     * 通过销售计划id获取销售计划信息（创建人，状态）
     */
    SalePlan querySalePlanById(Integer salePlanId);


    /**
     * 修改销售计划状态(创建-->提交)
     */
    Integer submitSalePlan(Integer salePlanId);

    /**
     * 修改销售计划状态(提交-->通过)
     */
    Integer passSalePlan(Integer salePlanId);

    /**
     * 修改销售计划状态(提交-->打回)
     */
    Integer repulshSalePlan(Integer salePlanId);

    /**
     * 修改销售计划状态(提交-->作废)
     */
    Integer obsoleteSalePlan(Integer salePlanId);


    /**
     * 删除销售计划
     */
    Integer removeSalePlan(Integer salePlanId);

    /**
     * 修改销售计划
     */
    Integer updateSalePlan(SalePlan salePlan);
}

